package com.ahora.org.ejb.facade.impl;

import java.util.Date;
import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import com.ahora.org.ejb.dao.interfaces.BandejaExpedienteDAO;
import com.ahora.org.ejb.facade.interfaces.BandejaExpedienteFacade;
import com.ahora.org.ejb.jpa.beans.BandejaDTO;
import com.ahora.org.ejb.jpa.beans.GenericoBean5;
import com.ahora.org.ejb.jpa.beans.RequisitoProcesosDTO;
import com.ahora.org.ejb.jpa.entities.Accion;
import com.ahora.org.ejb.jpa.entities.Area;
import com.ahora.org.ejb.jpa.entities.DetalleAccionDoc;
import com.ahora.org.ejb.jpa.entities.DetalleAccionExpe;
import com.ahora.org.ejb.jpa.entities.MovimientoDocumento;
import com.ahora.org.ejb.jpa.entities.MovimientoExpediente;
import com.ahora.org.ejb.jpa.entities.Usuario;
@Stateless
public class BandejaExpedienteFacadeBean implements BandejaExpedienteFacade {

	@EJB
	private BandejaExpedienteDAO objBandejaExpedienteDao;
	
	@Override
	public List<BandejaDTO> listarExpedientesBandeja(int idUsuario) {
		return objBandejaExpedienteDao.listarExpedientesBandeja(idUsuario);
	}

	@Override
	public List<BandejaDTO> listarDocumentosInternosBandeja(int idUsuario)throws Exception {
		return objBandejaExpedienteDao.listaDocumentosInternosBandeja(idUsuario);
	}

	@Override
	public List<BandejaDTO> listarExpedientesTODOAREA(int idUsuario) {
		return objBandejaExpedienteDao.listarExpedientesTODOAREA(idUsuario);
	}

	@Override
	public List<Accion> listarAcciones() {
		return objBandejaExpedienteDao.listarAcciones();
	}

	@Override
	public List<Area> listarAreas() throws Exception {
		return objBandejaExpedienteDao.listarAreas();
	}

	@Override
	public String listarNombresAreas(int codigo) throws Exception {
		return objBandejaExpedienteDao.listarNombresAreas(codigo);
	}

	@Override
	public List<Usuario> listarUsuario() throws Exception {
		return objBandejaExpedienteDao.listarUsuario();
	}

	@Override
	public List<GenericoBean5> listarFotosRequisitos() {
		return objBandejaExpedienteDao.listarFotosRequisitos();
	}

	@Override
	public List<RequisitoProcesosDTO> listarRequisitosCupex(int idExpediente) {
		return objBandejaExpedienteDao.listarRequisitosCupex(idExpediente);
	}

	@Override
	public String validarRequisitoCupex(BandejaDTO expediente, Date fecha,String observacion, Usuario obUserLog,List<RequisitoProcesosDTO> listaRequisitosEvaluar) {
		return objBandejaExpedienteDao.validarRequisitoCupex(expediente, fecha, observacion, obUserLog, listaRequisitosEvaluar);
	}

	@Override
	public String insertarDerivacionAutomatica(BandejaDTO objBandeja,Usuario objUsuarioLogin) {
		return objBandejaExpedienteDao.insertarDerivacionAutomatica(objBandeja, objUsuarioLogin);
	}

	@Override
	public void insertarDetalleAccionExpediente(DetalleAccionExpe detexpeacc,	Usuario obUserLog) {
		objBandejaExpedienteDao.insertarDetalleAccionExpediente(detexpeacc, obUserLog);
	}

	@Override
	public void update(int estado, int requisito, int expediente,Usuario obUserLog) {
		objBandejaExpedienteDao.update(estado, requisito, expediente, obUserLog);
	}

	@Override
	public int insertarMovimientoDocumento(MovimientoDocumento documento,
			Usuario userLog) {
		return objBandejaExpedienteDao.insertarMovimientoDocumento(documento, userLog);
	}

	@Override
	public int insertarMovimientoExpediente(MovimientoExpediente expediente,int idMovimiento, Usuario userLog) {
		return objBandejaExpedienteDao.insertarMovimientoExpediente(expediente, idMovimiento, userLog);
	}

	@Override
	public void insertarDetalleAccionDocumento(DetalleAccionDoc entity,	Usuario userLog) {
		objBandejaExpedienteDao.insertarDetalleAccionDocumento(entity, userLog);
	}

	@Override
	public String registrarExpedienteInform(BandejaDTO expediente,	Usuario obUserLog) {
		return objBandejaExpedienteDao.registrarExpedienteInform(expediente, obUserLog);
	}

	@Override
	public String derivarFirmaDigital(BandejaDTO expediente, Usuario obUserLog) {
		return objBandejaExpedienteDao.derivarFirmaDigital(expediente, obUserLog);
	}
}
